// $Id: Board.h 101 2007-11-15 13:13:55Z bram $


/**
 * Board class header file.
 *
 * @file Board.h
 * @author Bram Bonn&eacute;
 * @author Wim Leers
 */


#ifndef BOARD_H
#define BOARD_H

#include "Piece.h"

class Board {
	public:
		Board(int size);
		~Board(void);
		Board(const Board & other);
		Piece GetPiece(int x, int y) const { return m_board[x][y]; }
		void SetPiece(Piece piece, int x, int y) { m_board[x][y] = piece; }
		int GetSize(void) const { return m_size; }
		void TogglePiece(int x, int y);
		bool IsWithinBounds(int x, int y) const { return ((x >= 0 && x < m_size) && (y >= 0 && y < m_size)); }
	private:
		int m_size;
		Piece ** m_board;
};

#endif
